// 导入axios
import axios from 'axios'
// 导入router
import $router from '../router/index'
import { Toast } from 'vant';
//对axios 做二次封住（利用了axios的请求和响应拦截器，拦截每次请求，对每次请求做一些必要的处理）

// 设置请求拦截器（每次使用axios发请求，请求即将从浏览器发出时，请求会被请求拦截器拦截下来）
//设置请求的基础路径
// axios.defaults.baseURL=process.env.VUE_APP_BASE_API;
axios.interceptors.request.use(function (config) {
  // 显示loading
  Toast({message:'加载',type:'loading',duration:0});

  //给config设置请求头
  // 每次发请求都会 都会自动执行这个代码，添加请求头
  config.headers['Authorization'] = 'Bearer '+localStorage.getItem('token')
  return config;
 }, function (error) {
 
  return Promise.reject(error);
 });

 // 设置响应拦截器 （每次使用axios发请求，请求即将从浏览器发出时，响应会被请求拦截器拦截下来）

axios.interceptors.response.use(function (response) {
  /* if(response.data.token && response.data.code == 200){
    localStorage.getItem('token',res.data.token)
  }
  也可以在这里来保存token */ 
  // 隐藏loading
  Toast.clear();
  return response;
 }, function (error) {
  // 隐藏loading
  Toast.clear();
  // 统一处理错误码
  if(error.response.status == 404){
    console.log("访问路径有错");
  }else if(error.response.status == 401){
    alert("登录过期/身份验证失败");
    // 删除本地存储中的token
    localStorage.removeItem('token');
    // 重定向到 登录页 去登录
    $router.push('/login')

  }else if(error.response.status == 500){
    alert("服务器错误");
  }
 
  return Promise.reject(error);
 });

// 导出axios
export default axios ;